package cn.wangzg.course0801.bean;

import java.util.List;

/**
 * Time: 2020/4/7
 * Author: wangzhiguo
 * Description: 功能描述
 */
public class Article {

    /**
     * data : {"curPage":1,"datas":[{"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":510,"chapterName":"大厂分享","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":true,"id":12774,"link":"https://mp.weixin.qq.com/s/YbotiMLHGz5fzLbF4CpPEA","niceDate":"2小时前","niceShareDate":"2小时前","origin":"","prefix":"","projectLink":"","publishTime":1586233253000,"selfVisible":0,"shareDate":1586233149000,"shareUser":"鸿洋","superChapterId":510,"superChapterName":"大厂对外分享","tags":[],"title":"AwCookieManager.nativeGetCookie crash 排查","type":0,"userId":2,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"自助","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":true,"id":12772,"link":"https://juejin.im/post/5e8b3e1f6fb9a03c494bb512","niceDate":"3小时前","niceShareDate":"3小时前","origin":"","prefix":"","projectLink":"","publishTime":1586230318000,"selfVisible":0,"shareDate":1586230318000,"shareUser":"xll","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"Android Tv版嵌套滑动实现极光云视听顶部导航效果","type":0,"userId":22903,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"自助","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":true,"id":12753,"link":"https://mp.weixin.qq.com/s/l1FFFSaVVMhNvspuWd0Lug","niceDate":"4小时前","niceShareDate":"4小时前","origin":"","prefix":"","projectLink":"","publishTime":1586225357000,"selfVisible":0,"shareDate":1586225357000,"shareUser":"飞洋","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"丝滑！嵌套滑动通用解决方案--NestedScrollingParent2","type":0,"userId":31360,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"自助","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":true,"id":12752,"link":"https://juejin.im/post/5e899721518825739f6b0351","niceDate":"6小时前","niceShareDate":"6小时前","origin":"","prefix":"","projectLink":"","publishTime":1586220427000,"selfVisible":0,"shareDate":1586220427000,"shareUser":"JsonChao","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"深入探索编译插桩技术（三、解密 JVM 字节码）","type":0,"userId":611,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"自助","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"id":12722,"link":"https://juejin.im/post/5e85fe4e6fb9a03c6f66eef9#heading-3","niceDate":"2020-04-02 23:15","niceShareDate":"2020-04-02 23:15","origin":"","prefix":"","projectLink":"","publishTime":1585840513000,"selfVisible":0,"shareDate":1585840513000,"shareUser":"xll","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"20分钟，我们一起实现爱奇艺式焦点寻找","type":0,"userId":22903,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"鸿洋","canEdit":false,"chapterId":377,"chapterName":"优质内推","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"id":12721,"link":"https://www.wanandroid.com/blog/show/2725","niceDate":"2020-04-02 21:30","niceShareDate":"2020-04-02 21:28","origin":"","prefix":"","projectLink":"","publishTime":1585834232000,"selfVisible":0,"shareDate":1585834098000,"shareUser":"","superChapterId":377,"superChapterName":"内推","tags":[],"title":"内推 | 阿里巴巴最国际化的事业部","type":0,"userId":-1,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"自助","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"id":12719,"link":"https://blog.csdn.net/haojiagou/article/details/105265863","niceDate":"2020-04-02 12:23","niceShareDate":"2020-04-02 12:23","origin":"","prefix":"","projectLink":"","publishTime":1585801380000,"selfVisible":0,"shareDate":1585801380000,"shareUser":"Android_Jiang","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"历时三天，完成了Flutter版本的玩安卓","type":0,"userId":56200,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"自助","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"id":12717,"link":"https://juejin.im/post/5e84384af265da47e1593102","niceDate":"2020-04-02 08:42","niceShareDate":"2020-04-02 08:42","origin":"","prefix":"","projectLink":"","publishTime":1585788130000,"selfVisible":0,"shareDate":1585788130000,"shareUser":"JsonChao","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"深入探索编译插桩技术（二、AspectJ）","type":0,"userId":611,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":95,"chapterName":"相机Camera","collect":true,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"id":12712,"link":"https://juejin.im/post/5e83f2d2f265da47bd1b913a","niceDate":"2020-04-02 00:02","niceShareDate":"2020-04-01 22:41","origin":"","prefix":"","projectLink":"","publishTime":1585756925000,"selfVisible":0,"shareDate":1585752074000,"shareUser":"鸿洋","superChapterId":95,"superChapterName":"多媒体技术","tags":[],"title":"Android Jetpack CameraX 库 Beta 版正式发布！","type":0,"userId":2,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":423,"chapterName":"Architecture","collect":true,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"id":12713,"link":"https://juejin.im/post/5e8348bef265da47e02a6ce2","niceDate":"2020-04-01 23:35","niceShareDate":"2020-04-01 22:41","origin":"","prefix":"","projectLink":"","publishTime":1585755334000,"selfVisible":0,"shareDate":1585752105000,"shareUser":"鸿洋","superChapterId":423,"superChapterName":"Jetpack","tags":[],"title":"【背上Jetpack之Lifecycle】万物基于 Lifecycle 默默无闻大用处","type":0,"userId":2,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":246,"chapterName":"保活","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"id":12711,"link":"https://juejin.im/post/5e820b61e51d45470652e7b8","niceDate":"2020-04-01 21:50","niceShareDate":"2020-04-01 10:13","origin":"","prefix":"","projectLink":"","publishTime":1585749030000,"selfVisible":0,"shareDate":1585707228000,"shareUser":"MNY459","superChapterId":196,"superChapterName":"热门专题","tags":[],"title":"Android最强保活黑科技的最强技术实现","type":0,"userId":2199,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"xiaoyang","canEdit":false,"chapterId":440,"chapterName":"官方","collect":false,"courseId":13,"desc":"<p>部分同学访问如下：<\/p>\r\n<p><img src=\"https://wanandroid.com/blogimgs/f617da66-d738-4be8-979e-e1b71f5ba8e6.jpg\" alt=\"227E8EAC15FF958DC8E939FFF0AC671C.jpg\" width=\"320px\" /><\/p>\r\n<p>但是还有部分同学正常：<\/p>\r\n<p><img src=\"https://wanandroid.com/blogimgs/2e1022bd-d268-409f-ae2f-844a34407f52.jpg\" alt=\"95C2EE47B03742B6C5BB6B533A127ABA.jpg\"  width=\"400px\"/><\/p>\r\n<p>那么问题来了：<\/p>\r\n<ol>\r\n<li>这种现象是github服务器遭受攻击证书被人替换了？<\/li>\r\n<li>如果不是，其实是因为什么呢？<\/li>\r\n<\/ol>\r\n<p>另外引发了一个有意思的问题，有人意识到找一个正常的用户，让他ping一个github的ip，通过ip访问，美滋滋：<\/p>\r\n<p>例如github的一个可用ip为：<\/p>\r\n<pre><code>140.82.112.4\r\n<\/code><\/pre><p>但是你访问，<strong>一定会报证书不不安全<\/strong>。<\/p>\r\n<p>问题来了：<\/p>\r\n<ol>\r\n<li>这个不安全是为什么？是指这个ip是个错误的吗？（思考下https证书校验流程）<\/li>\r\n<li>有了1的问题，那么server返回网站的证书到客户端，客户端是如何验证Https的证书是真实有效的，会经历哪些验证？<\/li>\r\n<\/ol>","descMd":"","envelopePic":"","fresh":false,"id":12614,"link":"https://wanandroid.com/wenda/show/12614","niceDate":"2020-04-01 21:49","niceShareDate":"2020-03-27 11:07","origin":"","prefix":"","projectLink":"","publishTime":1585748973000,"selfVisible":0,"shareDate":1585278446000,"shareUser":"","superChapterId":440,"superChapterName":"问答","tags":[{"name":"本站发布","url":"/article/list/0?cid=440"},{"name":"问答","url":"/wenda"}],"title":"每日一问 | 上周出现了大规模的github证书不可用的状态...但是真的是github服务器被攻击了么？","type":0,"userId":2,"visible":1,"zan":4},{"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"自助","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"id":12710,"link":"https://weilu.blog.csdn.net/article/details/105237677","niceDate":"2020-04-01 09:02","niceShareDate":"2020-04-01 09:02","origin":"","prefix":"","projectLink":"","publishTime":1585702979000,"selfVisible":0,"shareDate":1585702979000,"shareUser":"唯鹿","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"玩玩Flutter的拖拽&mdash;&mdash;实现一款万能遥控器","type":0,"userId":2657,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"自助","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"id":12707,"link":"https://juejin.im/post/5e834bb5f265da480d61668d","niceDate":"2020-04-01 08:27","niceShareDate":"2020-04-01 08:27","origin":"","prefix":"","projectLink":"","publishTime":1585700820000,"selfVisible":0,"shareDate":1585700820000,"shareUser":"Fly_with24","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"【背上Jetpack之LiveData】ViewModel 的左膀右臂 数据驱动真的香","type":0,"userId":37531,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":249,"chapterName":"干货资源","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"id":12702,"link":"https://chinaevent.microsoft.com/virtualsummit/zh-cn/proRegister?channel_id=100006","niceDate":"2020-04-01 00:22","niceShareDate":"2020-04-01 00:21","origin":"","prefix":"","projectLink":"","publishTime":1585671739000,"selfVisible":0,"shareDate":1585671702000,"shareUser":"鸿洋","superChapterId":249,"superChapterName":"干货资源","tags":[],"title":"微软在线技术峰会 免费报名参会","type":0,"userId":2,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":510,"chapterName":"大厂分享","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"id":12683,"link":"https://juejin.im/post/5e809cf46fb9a03c763cf348","niceDate":"2020-03-31 23:41","niceShareDate":"2020-03-31 07:37","origin":"","prefix":"","projectLink":"","publishTime":1585669298000,"selfVisible":0,"shareDate":1585611426000,"shareUser":"goweii","superChapterId":510,"superChapterName":"大厂对外分享","tags":[],"title":"抖音包大小优化-资源优化","type":0,"userId":20382,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":375,"chapterName":"Flutter","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"id":12694,"link":"https://juejin.im/post/5e7f5be55188257396515dbc","niceDate":"2020-03-31 23:41","niceShareDate":"2020-03-31 23:23","origin":"","prefix":"","projectLink":"","publishTime":1585669287000,"selfVisible":0,"shareDate":1585668197000,"shareUser":"鸿洋","superChapterId":375,"superChapterName":"跨平台","tags":[],"title":"【Flutter脱发录】也来实现一下灭霸效果","type":0,"userId":2,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":55,"chapterName":"新的API","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"id":12696,"link":"https://www.jianshu.com/p/33dde1bec200","niceDate":"2020-03-31 23:41","niceShareDate":"2020-03-31 23:27","origin":"","prefix":"","projectLink":"","publishTime":1585669276000,"selfVisible":0,"shareDate":1585668440000,"shareUser":"四糸侑","superChapterId":55,"superChapterName":"5.+高新技术","tags":[],"title":"【译】探索View Binding","type":0,"userId":34746,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":197,"chapterName":"Native Crash","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"id":12697,"link":"https://www.jianshu.com/p/ae66e54cdbc0","niceDate":"2020-03-31 23:40","niceShareDate":"2020-03-31 23:29","origin":"","prefix":"","projectLink":"","publishTime":1585669248000,"selfVisible":0,"shareDate":1585668543000,"shareUser":"鸿洋","superChapterId":196,"superChapterName":"热门专题","tags":[],"title":"一个优秀的JNI崩溃(ndk crash)日志解析脚本","type":0,"userId":2,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":160,"chapterName":"热修复","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"id":12698,"link":"https://www.jianshu.com/p/da7b805ac712","niceDate":"2020-03-31 23:40","niceShareDate":"2020-03-31 23:34","origin":"","prefix":"","projectLink":"","publishTime":1585669235000,"selfVisible":0,"shareDate":1585668861000,"shareUser":"鸿洋","superChapterId":196,"superChapterName":"热门专题","tags":[],"title":"Android 源码分析实战 - 动态加载修复 so 库","type":0,"userId":2,"visible":1,"zan":0}],"offset":0,"over":false,"pageCount":412,"size":20,"total":8225}
     * errorCode : 0
     * errorMsg :
     */

    private DataBean data;
    private int errorCode;
    private String errorMsg;

    public DataBean getData() {
        return data;
    }

    public void setData(DataBean data) {
        this.data = data;
    }

    public int getErrorCode() {
        return errorCode;
    }

    public void setErrorCode(int errorCode) {
        this.errorCode = errorCode;
    }

    public String getErrorMsg() {
        return errorMsg;
    }

    public void setErrorMsg(String errorMsg) {
        this.errorMsg = errorMsg;
    }

    public static class DataBean {
        /**
         * curPage : 1
         * datas : [{"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":510,"chapterName":"大厂分享","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":true,"id":12774,"link":"https://mp.weixin.qq.com/s/YbotiMLHGz5fzLbF4CpPEA","niceDate":"2小时前","niceShareDate":"2小时前","origin":"","prefix":"","projectLink":"","publishTime":1586233253000,"selfVisible":0,"shareDate":1586233149000,"shareUser":"鸿洋","superChapterId":510,"superChapterName":"大厂对外分享","tags":[],"title":"AwCookieManager.nativeGetCookie crash 排查","type":0,"userId":2,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"自助","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":true,"id":12772,"link":"https://juejin.im/post/5e8b3e1f6fb9a03c494bb512","niceDate":"3小时前","niceShareDate":"3小时前","origin":"","prefix":"","projectLink":"","publishTime":1586230318000,"selfVisible":0,"shareDate":1586230318000,"shareUser":"xll","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"Android Tv版嵌套滑动实现极光云视听顶部导航效果","type":0,"userId":22903,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"自助","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":true,"id":12753,"link":"https://mp.weixin.qq.com/s/l1FFFSaVVMhNvspuWd0Lug","niceDate":"4小时前","niceShareDate":"4小时前","origin":"","prefix":"","projectLink":"","publishTime":1586225357000,"selfVisible":0,"shareDate":1586225357000,"shareUser":"飞洋","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"丝滑！嵌套滑动通用解决方案--NestedScrollingParent2","type":0,"userId":31360,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"自助","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":true,"id":12752,"link":"https://juejin.im/post/5e899721518825739f6b0351","niceDate":"6小时前","niceShareDate":"6小时前","origin":"","prefix":"","projectLink":"","publishTime":1586220427000,"selfVisible":0,"shareDate":1586220427000,"shareUser":"JsonChao","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"深入探索编译插桩技术（三、解密 JVM 字节码）","type":0,"userId":611,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"自助","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"id":12722,"link":"https://juejin.im/post/5e85fe4e6fb9a03c6f66eef9#heading-3","niceDate":"2020-04-02 23:15","niceShareDate":"2020-04-02 23:15","origin":"","prefix":"","projectLink":"","publishTime":1585840513000,"selfVisible":0,"shareDate":1585840513000,"shareUser":"xll","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"20分钟，我们一起实现爱奇艺式焦点寻找","type":0,"userId":22903,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"鸿洋","canEdit":false,"chapterId":377,"chapterName":"优质内推","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"id":12721,"link":"https://www.wanandroid.com/blog/show/2725","niceDate":"2020-04-02 21:30","niceShareDate":"2020-04-02 21:28","origin":"","prefix":"","projectLink":"","publishTime":1585834232000,"selfVisible":0,"shareDate":1585834098000,"shareUser":"","superChapterId":377,"superChapterName":"内推","tags":[],"title":"内推 | 阿里巴巴最国际化的事业部","type":0,"userId":-1,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"自助","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"id":12719,"link":"https://blog.csdn.net/haojiagou/article/details/105265863","niceDate":"2020-04-02 12:23","niceShareDate":"2020-04-02 12:23","origin":"","prefix":"","projectLink":"","publishTime":1585801380000,"selfVisible":0,"shareDate":1585801380000,"shareUser":"Android_Jiang","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"历时三天，完成了Flutter版本的玩安卓","type":0,"userId":56200,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"自助","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"id":12717,"link":"https://juejin.im/post/5e84384af265da47e1593102","niceDate":"2020-04-02 08:42","niceShareDate":"2020-04-02 08:42","origin":"","prefix":"","projectLink":"","publishTime":1585788130000,"selfVisible":0,"shareDate":1585788130000,"shareUser":"JsonChao","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"深入探索编译插桩技术（二、AspectJ）","type":0,"userId":611,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":95,"chapterName":"相机Camera","collect":true,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"id":12712,"link":"https://juejin.im/post/5e83f2d2f265da47bd1b913a","niceDate":"2020-04-02 00:02","niceShareDate":"2020-04-01 22:41","origin":"","prefix":"","projectLink":"","publishTime":1585756925000,"selfVisible":0,"shareDate":1585752074000,"shareUser":"鸿洋","superChapterId":95,"superChapterName":"多媒体技术","tags":[],"title":"Android Jetpack CameraX 库 Beta 版正式发布！","type":0,"userId":2,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":423,"chapterName":"Architecture","collect":true,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"id":12713,"link":"https://juejin.im/post/5e8348bef265da47e02a6ce2","niceDate":"2020-04-01 23:35","niceShareDate":"2020-04-01 22:41","origin":"","prefix":"","projectLink":"","publishTime":1585755334000,"selfVisible":0,"shareDate":1585752105000,"shareUser":"鸿洋","superChapterId":423,"superChapterName":"Jetpack","tags":[],"title":"【背上Jetpack之Lifecycle】万物基于 Lifecycle 默默无闻大用处","type":0,"userId":2,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":246,"chapterName":"保活","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"id":12711,"link":"https://juejin.im/post/5e820b61e51d45470652e7b8","niceDate":"2020-04-01 21:50","niceShareDate":"2020-04-01 10:13","origin":"","prefix":"","projectLink":"","publishTime":1585749030000,"selfVisible":0,"shareDate":1585707228000,"shareUser":"MNY459","superChapterId":196,"superChapterName":"热门专题","tags":[],"title":"Android最强保活黑科技的最强技术实现","type":0,"userId":2199,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"xiaoyang","canEdit":false,"chapterId":440,"chapterName":"官方","collect":false,"courseId":13,"desc":"<p>部分同学访问如下：<\/p>\r\n<p><img src=\"https://wanandroid.com/blogimgs/f617da66-d738-4be8-979e-e1b71f5ba8e6.jpg\" alt=\"227E8EAC15FF958DC8E939FFF0AC671C.jpg\" width=\"320px\" /><\/p>\r\n<p>但是还有部分同学正常：<\/p>\r\n<p><img src=\"https://wanandroid.com/blogimgs/2e1022bd-d268-409f-ae2f-844a34407f52.jpg\" alt=\"95C2EE47B03742B6C5BB6B533A127ABA.jpg\"  width=\"400px\"/><\/p>\r\n<p>那么问题来了：<\/p>\r\n<ol>\r\n<li>这种现象是github服务器遭受攻击证书被人替换了？<\/li>\r\n<li>如果不是，其实是因为什么呢？<\/li>\r\n<\/ol>\r\n<p>另外引发了一个有意思的问题，有人意识到找一个正常的用户，让他ping一个github的ip，通过ip访问，美滋滋：<\/p>\r\n<p>例如github的一个可用ip为：<\/p>\r\n<pre><code>140.82.112.4\r\n<\/code><\/pre><p>但是你访问，<strong>一定会报证书不不安全<\/strong>。<\/p>\r\n<p>问题来了：<\/p>\r\n<ol>\r\n<li>这个不安全是为什么？是指这个ip是个错误的吗？（思考下https证书校验流程）<\/li>\r\n<li>有了1的问题，那么server返回网站的证书到客户端，客户端是如何验证Https的证书是真实有效的，会经历哪些验证？<\/li>\r\n<\/ol>","descMd":"","envelopePic":"","fresh":false,"id":12614,"link":"https://wanandroid.com/wenda/show/12614","niceDate":"2020-04-01 21:49","niceShareDate":"2020-03-27 11:07","origin":"","prefix":"","projectLink":"","publishTime":1585748973000,"selfVisible":0,"shareDate":1585278446000,"shareUser":"","superChapterId":440,"superChapterName":"问答","tags":[{"name":"本站发布","url":"/article/list/0?cid=440"},{"name":"问答","url":"/wenda"}],"title":"每日一问 | 上周出现了大规模的github证书不可用的状态...但是真的是github服务器被攻击了么？","type":0,"userId":2,"visible":1,"zan":4},{"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"自助","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"id":12710,"link":"https://weilu.blog.csdn.net/article/details/105237677","niceDate":"2020-04-01 09:02","niceShareDate":"2020-04-01 09:02","origin":"","prefix":"","projectLink":"","publishTime":1585702979000,"selfVisible":0,"shareDate":1585702979000,"shareUser":"唯鹿","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"玩玩Flutter的拖拽&mdash;&mdash;实现一款万能遥控器","type":0,"userId":2657,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"自助","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"id":12707,"link":"https://juejin.im/post/5e834bb5f265da480d61668d","niceDate":"2020-04-01 08:27","niceShareDate":"2020-04-01 08:27","origin":"","prefix":"","projectLink":"","publishTime":1585700820000,"selfVisible":0,"shareDate":1585700820000,"shareUser":"Fly_with24","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"【背上Jetpack之LiveData】ViewModel 的左膀右臂 数据驱动真的香","type":0,"userId":37531,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":249,"chapterName":"干货资源","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"id":12702,"link":"https://chinaevent.microsoft.com/virtualsummit/zh-cn/proRegister?channel_id=100006","niceDate":"2020-04-01 00:22","niceShareDate":"2020-04-01 00:21","origin":"","prefix":"","projectLink":"","publishTime":1585671739000,"selfVisible":0,"shareDate":1585671702000,"shareUser":"鸿洋","superChapterId":249,"superChapterName":"干货资源","tags":[],"title":"微软在线技术峰会 免费报名参会","type":0,"userId":2,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":510,"chapterName":"大厂分享","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"id":12683,"link":"https://juejin.im/post/5e809cf46fb9a03c763cf348","niceDate":"2020-03-31 23:41","niceShareDate":"2020-03-31 07:37","origin":"","prefix":"","projectLink":"","publishTime":1585669298000,"selfVisible":0,"shareDate":1585611426000,"shareUser":"goweii","superChapterId":510,"superChapterName":"大厂对外分享","tags":[],"title":"抖音包大小优化-资源优化","type":0,"userId":20382,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":375,"chapterName":"Flutter","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"id":12694,"link":"https://juejin.im/post/5e7f5be55188257396515dbc","niceDate":"2020-03-31 23:41","niceShareDate":"2020-03-31 23:23","origin":"","prefix":"","projectLink":"","publishTime":1585669287000,"selfVisible":0,"shareDate":1585668197000,"shareUser":"鸿洋","superChapterId":375,"superChapterName":"跨平台","tags":[],"title":"【Flutter脱发录】也来实现一下灭霸效果","type":0,"userId":2,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":55,"chapterName":"新的API","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"id":12696,"link":"https://www.jianshu.com/p/33dde1bec200","niceDate":"2020-03-31 23:41","niceShareDate":"2020-03-31 23:27","origin":"","prefix":"","projectLink":"","publishTime":1585669276000,"selfVisible":0,"shareDate":1585668440000,"shareUser":"四糸侑","superChapterId":55,"superChapterName":"5.+高新技术","tags":[],"title":"【译】探索View Binding","type":0,"userId":34746,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":197,"chapterName":"Native Crash","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"id":12697,"link":"https://www.jianshu.com/p/ae66e54cdbc0","niceDate":"2020-03-31 23:40","niceShareDate":"2020-03-31 23:29","origin":"","prefix":"","projectLink":"","publishTime":1585669248000,"selfVisible":0,"shareDate":1585668543000,"shareUser":"鸿洋","superChapterId":196,"superChapterName":"热门专题","tags":[],"title":"一个优秀的JNI崩溃(ndk crash)日志解析脚本","type":0,"userId":2,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":160,"chapterName":"热修复","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"id":12698,"link":"https://www.jianshu.com/p/da7b805ac712","niceDate":"2020-03-31 23:40","niceShareDate":"2020-03-31 23:34","origin":"","prefix":"","projectLink":"","publishTime":1585669235000,"selfVisible":0,"shareDate":1585668861000,"shareUser":"鸿洋","superChapterId":196,"superChapterName":"热门专题","tags":[],"title":"Android 源码分析实战 - 动态加载修复 so 库","type":0,"userId":2,"visible":1,"zan":0}]
         * offset : 0
         * over : false
         * pageCount : 412
         * size : 20
         * total : 8225
         */

        private int curPage;
        private int offset;
        private boolean over;
        private int pageCount;
        private int size;
        private int total;
        private List<DatasBean> datas;

        public int getCurPage() {
            return curPage;
        }

        public void setCurPage(int curPage) {
            this.curPage = curPage;
        }

        public int getOffset() {
            return offset;
        }

        public void setOffset(int offset) {
            this.offset = offset;
        }

        public boolean isOver() {
            return over;
        }

        public void setOver(boolean over) {
            this.over = over;
        }

        public int getPageCount() {
            return pageCount;
        }

        public void setPageCount(int pageCount) {
            this.pageCount = pageCount;
        }

        public int getSize() {
            return size;
        }

        public void setSize(int size) {
            this.size = size;
        }

        public int getTotal() {
            return total;
        }

        public void setTotal(int total) {
            this.total = total;
        }

        public List<DatasBean> getDatas() {
            return datas;
        }

        public void setDatas(List<DatasBean> datas) {
            this.datas = datas;
        }

        public static class DatasBean {
            /**
             * apkLink :
             * audit : 1
             * author :
             * canEdit : false
             * chapterId : 510
             * chapterName : 大厂分享
             * collect : false
             * courseId : 13
             * desc :
             * descMd :
             * envelopePic :
             * fresh : true
             * id : 12774
             * link : https://mp.weixin.qq.com/s/YbotiMLHGz5fzLbF4CpPEA
             * niceDate : 2小时前
             * niceShareDate : 2小时前
             * origin :
             * prefix :
             * projectLink :
             * publishTime : 1586233253000
             * selfVisible : 0
             * shareDate : 1586233149000
             * shareUser : 鸿洋
             * superChapterId : 510
             * superChapterName : 大厂对外分享
             * tags : []
             * title : AwCookieManager.nativeGetCookie crash 排查
             * type : 0
             * userId : 2
             * visible : 1
             * zan : 0
             */

            private String apkLink;
            private int audit;
            private String author;
            private boolean canEdit;
            private int chapterId;
            private String chapterName;
            private boolean collect;
            private int courseId;
            private String desc;
            private String descMd;
            private String envelopePic;
            private boolean fresh;
            private int id;
            private String link;
            private String niceDate;
            private String niceShareDate;
            private String origin;
            private String prefix;
            private String projectLink;
            private long publishTime;
            private int selfVisible;
            private long shareDate;
            private String shareUser;
            private int superChapterId;
            private String superChapterName;
            private String title;
            private int type;
            private int userId;
            private int visible;
            private int zan;
            private List<?> tags;

            public String getApkLink() {
                return apkLink;
            }

            public void setApkLink(String apkLink) {
                this.apkLink = apkLink;
            }

            public int getAudit() {
                return audit;
            }

            public void setAudit(int audit) {
                this.audit = audit;
            }

            public String getAuthor() {
                return author;
            }

            public void setAuthor(String author) {
                this.author = author;
            }

            public boolean isCanEdit() {
                return canEdit;
            }

            public void setCanEdit(boolean canEdit) {
                this.canEdit = canEdit;
            }

            public int getChapterId() {
                return chapterId;
            }

            public void setChapterId(int chapterId) {
                this.chapterId = chapterId;
            }

            public String getChapterName() {
                return chapterName;
            }

            public void setChapterName(String chapterName) {
                this.chapterName = chapterName;
            }

            public boolean isCollect() {
                return collect;
            }

            public void setCollect(boolean collect) {
                this.collect = collect;
            }

            public int getCourseId() {
                return courseId;
            }

            public void setCourseId(int courseId) {
                this.courseId = courseId;
            }

            public String getDesc() {
                return desc;
            }

            public void setDesc(String desc) {
                this.desc = desc;
            }

            public String getDescMd() {
                return descMd;
            }

            public void setDescMd(String descMd) {
                this.descMd = descMd;
            }

            public String getEnvelopePic() {
                return envelopePic;
            }

            public void setEnvelopePic(String envelopePic) {
                this.envelopePic = envelopePic;
            }

            public boolean isFresh() {
                return fresh;
            }

            public void setFresh(boolean fresh) {
                this.fresh = fresh;
            }

            public int getId() {
                return id;
            }

            public void setId(int id) {
                this.id = id;
            }

            public String getLink() {
                return link;
            }

            public void setLink(String link) {
                this.link = link;
            }

            public String getNiceDate() {
                return niceDate;
            }

            public void setNiceDate(String niceDate) {
                this.niceDate = niceDate;
            }

            public String getNiceShareDate() {
                return niceShareDate;
            }

            public void setNiceShareDate(String niceShareDate) {
                this.niceShareDate = niceShareDate;
            }

            public String getOrigin() {
                return origin;
            }

            public void setOrigin(String origin) {
                this.origin = origin;
            }

            public String getPrefix() {
                return prefix;
            }

            public void setPrefix(String prefix) {
                this.prefix = prefix;
            }

            public String getProjectLink() {
                return projectLink;
            }

            public void setProjectLink(String projectLink) {
                this.projectLink = projectLink;
            }

            public long getPublishTime() {
                return publishTime;
            }

            public void setPublishTime(long publishTime) {
                this.publishTime = publishTime;
            }

            public int getSelfVisible() {
                return selfVisible;
            }

            public void setSelfVisible(int selfVisible) {
                this.selfVisible = selfVisible;
            }

            public long getShareDate() {
                return shareDate;
            }

            public void setShareDate(long shareDate) {
                this.shareDate = shareDate;
            }

            public String getShareUser() {
                return shareUser;
            }

            public void setShareUser(String shareUser) {
                this.shareUser = shareUser;
            }

            public int getSuperChapterId() {
                return superChapterId;
            }

            public void setSuperChapterId(int superChapterId) {
                this.superChapterId = superChapterId;
            }

            public String getSuperChapterName() {
                return superChapterName;
            }

            public void setSuperChapterName(String superChapterName) {
                this.superChapterName = superChapterName;
            }

            public String getTitle() {
                return title;
            }

            public void setTitle(String title) {
                this.title = title;
            }

            public int getType() {
                return type;
            }

            public void setType(int type) {
                this.type = type;
            }

            public int getUserId() {
                return userId;
            }

            public void setUserId(int userId) {
                this.userId = userId;
            }

            public int getVisible() {
                return visible;
            }

            public void setVisible(int visible) {
                this.visible = visible;
            }

            public int getZan() {
                return zan;
            }

            public void setZan(int zan) {
                this.zan = zan;
            }

            public List<?> getTags() {
                return tags;
            }

            public void setTags(List<?> tags) {
                this.tags = tags;
            }
        }
    }
}
